The invention relates generally to data storage systems, and in particular, to data storage systems in which data is stored on mirrored logical volumes.
Various techniques have been developed for increasing the reliability of data storage systems and to protect against failure due to data loss. One such technique is data mirroring, which involves the storage of two or more copies of the data, preferably on different storage devices. A data storage having mirrored data operates to maintain all copies up to date. Typically, there are two copies.
In a typical data storage system, each physical device, such as a disk storage device, may have a format that defines a number of units, and the units may correspond to logical volumes. Each logical volume appears to the host computer or computers to be a separate storage device and, therefore, operations take place with regard to the logical volume as if it were a physical volume. Typically, the physical devices are configured as mirrored pairs, with each physical device in the pair storing corresponding copies of logical volumes. Such a data storage system is said to employ both mirrored physical devices and mirrored logical copies.
Some logical volumes are accessed for read and/or write operations substantially more often than other logical volumes, and the nature of the operations can vary from random accesses to sequential accesses during any particular sequence of read or write operations. As a result, with larger storage devices, the risk of having concurrent jobs, each pertaining to a relatively small file (local activity) interfering with each other's activity increases. The use of striping techniques further increases the risk. Depending upon the nature and frequency of the read and write operations to a storage device containing many logical volumes, the disk read/write heads may be severely worked and response time can, on average, be increased if sequential read and write locations are not located near one another.
One prior solution sets a mirror service policy, statically or preferably dynamically (as described in U.S. Pat. No. 6,112,257, the contents of which are incorporated herein, by reference), in an attempt to optimize the reading and writing of data. Such a policy may, for example, assume that most data transfers are sequential in nature, or that they are random.
One such policy is to only service requests that fall within the first half of a logical volume on one of a mirrored pair of physical devices and the requests to the second half of the logical volume on the other, mirrored physical device. Another policy might be to only service requests that fall in odd groups with a group being defined in terms of a number of blocks. For instance the first group (blocks 0-959) will be serviced by copy 1 and the next group by copy 2, etc.
The approach described in the above-referenced patent sorts logical volumes by activity level, load balances the physical devices based on the activity levels of the logical volumes and minimizes seeks for the logical volumes on the same physical devices.
Because volumes do not necessarily reside on mirrored physical devices, it is desirable also, to ensure load balancing over the non-mirrored physical devices. Another technique, described in U.S. application Ser. No. 09/382,752 now U.S. Pat. No. 6,611,896, filed Aug. 25, 1999, and entitled Dynamic Mirror Service Policy With Seek Adjustment in a Non-Physical Mirrored Storage Environment, the contents of which are incorporated herein, by reference, provides for a seek minimization to adjust seek activity when logical volumes, but not necessarily physical devices, are mirrored.